//void countsort(int* a, int n)
//{
//
//	int max = 0;
//	int min = 0;
//	for (int i = 0;i < n;i++)
//	{
//		if (a[max] < a[i])
//			max = i;
//		if (a[min] > a[i])
//			min = i;
//	}
//	int range = a[max] - a[min] + 1;
//
//	int* countA = (int*)malloc(sizeof(int) * range);
//	if (countA == NULL)
//	{
//		perror("malloc fail");
//		return;
//	}
//	memset(countA, 0, sizeof(int) * range);
//	for (int i = 0;i < n;i++)
//	{
//		countA[a[i] - a[min]]++;
//	}
//	int j = 0;
//	for (int i = 0;i < range;i++)
//	{
//		while (countA[i]--)
//		{
//			a[j++] = a[min] + i;
//		}
//	}
//	free(countA);
//}